모노리틱 아키텍처(Monolithic Architecture)
기존의 전통적인 웹 시스템 개발 스타일
하나의 애플리케이션 내에 모든 로직이 들어가 있는 구조이다
예를 들어 온라인 쇼핑몰 애플리케이션이 있다면 WAR 파일에 사용자 관리, 상품, 주문 관리 등 모든 컴포넌트가 들어 있고 이를 처리하는 UX로직까지 하나로 포장돼서 들어가 있는 구조라고 볼 수 있다
전체 애플리케이션을 하나로 처리하기 때문에 개발 도구에서 하나의 애플리케이션만 개발하면 되고, 배포가 간편하며 테스트도 하나의 애플리케이션만 수행하면 된다
문제점
작은 크기의 애플리케이션 개발에는 유용하지만 대형 시스템을 개발할 시 문제가 있다.
- 크기가 커서 빌드 및 배포 시간, 서버의 기동 시간이 오래 걸린다
- 소수의 실수가 전체 시스템의 빌드 실패를 유발한다
- 시스템 컴포넌트들이 로컬 콜(Call-by-Reference) 기반으로 타이트하게 연결되어 있기 때문에, 전체 시스템의 구조를 제대로 파악하지 않고 개발하면 다른컴포넌트에까지 영향을 준다. 이런 문제를 예방하기 위해서 전체 시스템의 구조를 이해해야 하는데, 대규모일수록 구조와 특성을 이해하기 어렵다.
- 특정 컴포넌트를 수정할 때도 재배포시 전체 애플리케이션 재배포를 해야한다